package com.ckr.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

/**
 * @author Shadowckr
 * @create 2022-01-12 20:37
 */
/*
关于Spring读取配置文件${user.name}是操作系统当前用户名的现象
原因：spring默认会优先加载系统环境变量，此时获取到的username的值实际上指的是当前计算机的用户名。
而不是properties配置文件中指定的username的值。
结论：应避免使用user.name和user.home作为properties等文件的值，以免引起冲突。
 */
@Component //注册bean
@Data
@NoArgsConstructor
@AllArgsConstructor
@PropertySource(value = "classpath:user.properties")
public class User {
    //直接使用@value
    @Value("${user1.name}") //从配置文件中取值
    private String name;
    @Value("#{9*3}")  // #{SPEL} Spring表达式
    private int age;
    @Value("Man")  // 字面量
    private String sex;
}
